package com.easylinkin.linkappapi.shigongyun.service;

import com.easylinkin.linkappapi.shigongyun.vo.DeviceCountVo;
import com.easylinkin.linkappapi.shigongyun.vo.LaborAttendanceVo;
import com.easylinkin.linkappapi.shigongyun.vo.TenantProjectCountVo;
import com.easylinkin.linkappapi.shigongyun.vo.UserClockGateVo;
import site.morn.rest.RestMessage;

/**
 * 企业版大屏service
 *
 * @author zhengwen
 */
public interface EnterpriseEditionBiService {
    /**
     * 劳务出勤数据
     *
     * @param laborAttendanceVo 劳务出勤数据vo
     * @return 统一出参
     */
    RestMessage laborAttendanceData(LaborAttendanceVo laborAttendanceVo);

    /**
     * 智能设备数
     *
     * @param deviceCountVo 设备条件vo
     * @return 统一出参
     */
    RestMessage deviceTypeNumData(DeviceCountVo deviceCountVo);

    /**
     * 疫情防控数据
     *
     * @param userClockGateVo 工地疫情防控条件vo
     * @return 统一出参
     */
    RestMessage userClockGateData(UserClockGateVo userClockGateVo);

    /**
     * 项目统计与优创统计
     *
     * @param tenantProjectCountVo 租户项目条件vo
     * @return 统一出参
     */
    RestMessage projectCountAndClassData(TenantProjectCountVo tenantProjectCountVo);

    /**
     * 项目类型数量统计
     *
     * @param tenantProjectCountVo 租户项目条件vo
     * @return 统一出参
     */
    RestMessage projectTypeCountData(TenantProjectCountVo tenantProjectCountVo);

    /**
     * 产值完成情况
     *
     * @param tenantProjectCountVo 租户项目条件vo
     * @return 统一出参
     */
    RestMessage outputEndData(TenantProjectCountVo tenantProjectCountVo);

    /**
     * 项目进展统计
     *
     * @param tenantProjectCountVo 租户项目条件vo
     * @return 统一出参
     */
    RestMessage projectStatueCountData(TenantProjectCountVo tenantProjectCountVo);

    /**
     * 项目弹框展示信息
     *
     * @param tenantProjectCountVo 租户项目条件vo
     * @return 统一出参
     */
    RestMessage projectInfoData(TenantProjectCountVo tenantProjectCountVo);

    RestMessage projectInfoData2(TenantProjectCountVo tenantProjectCountVo);

    /**
     * 安全生产态势数据
     *
     * @param tenantProjectCountVo 租户项目条件vo
     * @return 统一出参
     */
    RestMessage safeProductionData(TenantProjectCountVo tenantProjectCountVo);

    /**
     * 行政省市树形项目统计
     *
     * @param tenantProjectCountVo 租户项目条件vo
     * @return 统一出参
     */
    RestMessage manageAreaProjectData(TenantProjectCountVo tenantProjectCountVo);

    /**
     * 项目热力图（实际就是区域项目数量统计）
     * @param tenantProjectCountVo 租户项目条件vo
     * @return 统一出参
     */
    RestMessage projectHeatMapData(TenantProjectCountVo tenantProjectCountVo);

    /**
     * 安全生产态势数据
     *
     * @param tenantProjectCountVo 租户项目条件vo
     * @return 统一出参
     */
    RestMessage safeProductionData2(TenantProjectCountVo tenantProjectCountVo);
}
